package org.summer.lawyer.domain.bo.spuorderitem;

import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.summer.common.mybatis.core.domain.BaseEntitySearch;
import org.summer.lawyer.domain.SpuOrderItem;

import java.io.Serial;
import java.util.Date;

/**
 * 订单子项业务对象 spu_order_item
 *
 * @author summer
 * @date 2024-06-22
 */
@Schema(title ="订单子项视图对象 spu_order_item", description = "订单子项视图对象 spu_order_item")
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SpuOrderItem.class, reverseConvertGenerate = false)
public class SpuOrderItemBo extends BaseEntitySearch {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Schema(title = "orderItemId", type = "Long", description = "主键ID")
    //@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
    private Long orderItemId;

    /**
     * 订单ID
     */
    @Schema(title = "orderId", type = "Long", description = "订单ID")
    //@NotNull(message = "订单ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long orderId;

    /**
     * 商品ID
     */
    @Schema(title = "spuId", type = "Long", description = "商品ID")
    //@NotNull(message = "商品ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long spuId;

    /**
     * 商品名称
     */
    @Schema(title = "spuName", type = "String", description = "商品名称")
    //@NotBlank(message = "商品名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String spuName;

    /**
     * 商品分类ID
     */
    @Schema(title = "categoryId", type = "Long", description = "商品分类ID")
    //@NotNull(message = "商品分类ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long categoryId;

    /**
     * 商品分类名称
     */
    @Schema(title = "categoryName", type = "String", description = "商品分类名称")
    //@NotBlank(message = "商品分类名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String categoryName;

    /**
     * 下单用户ID
     */
    @Schema(title = "userId", type = "Long", description = "下单用户ID")
    //@NotNull(message = "下单用户ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long userId;

    /**
     * 下单用户姓名
     */
    @Schema(title = "userName", type = "String", description = "下单用户姓名")
    //@NotBlank(message = "下单用户姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String userName;

    /**
     * 商品主图片
     */
    @Schema(title = "spuImage", type = "String", description = "商品主图片")
    //@NotBlank(message = "商品主图片不能为空", groups = { AddGroup.class, EditGroup.class })
    private String spuImage;

    /**
     * 商品价格(单位分）
     */
    @Schema(title = "spuPrice", type = "Long", description = "商品价格(单位分）")
    //@NotNull(message = "商品价格(单位分）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long spuPrice;

    /**
     * 商品数量
     */
    @Schema(title = "spuCount", type = "Long", description = "商品数量")
    //@NotNull(message = "商品数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer spuCount;

    /**
     * 商品总价(单位分）
     */
    @Schema(title = "spuTotalAmount", type = "Long", description = "商品总价(单位分）")
    //@NotNull(message = "商品总价(单位分）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long spuTotalAmount;

    /**
     * 附件
     */
    @Schema(title = "spuFile", type = "String", description = "附件")
    private String spuFile;

    /**
     * 创建时间
     */
    @Schema(title = "createTime", type = "Date", description = "创建时间")
    private Date createTime;
}
